const jql = require('jql')
const result = require('result')

module.exports = {
  _before() {
    //在this中存入db对象
    this.db = jql(this, 'user')
  },
  //验证是否存在此账户
  async checkAccount(account) {
    //联表查询
    const userTemp = this.db.where(`account == "${account}"`).getTemp()
    const addressTemp = jql(this, 'address').getTemp()

    //查询数据库（只查询一条数据）
    const res = await jql(this, userTemp, addressTemp).get({
      getOne: true
    })

    //返回查询结果
    return result.success(res.data)
  },
  //新增账户
  async insertAccount({account, password, role}) {
    //将权限转换成数字
    role = role === 'customer' ? 1 : 2

    //插入数据库
    const res = await this.db.add({account, password, role})

    // 返回结果
    return result.success(res.id)
  },
  //登录时修改密码
  async updatePassword(account, password) {
    //修改密码
    const res = await this.db.where(`account == "${account}"`).update({password})

    //返回结果
    return result.success(res)
  }
}
